package com.yql.commonextend.middleware.rocketmq;

//import com.aliyun.openservices.ons.api.Message;
//import com.aliyun.openservices.ons.api.ONSFactory;
//import com.aliyun.openservices.ons.api.PropertyKeyConst;
//import com.aliyun.openservices.ons.api.SendResult;
//import com.aliyun.openservices.ons.api.order.OrderProducer;
import com.yql.commonextend.config.MqConfig;

import java.util.*;

/**
 * @Author: xxx
 * @Description: XXX
 * @Date: 2021/7/22
 **/
public class MQOrderProducer {


    /**
     *  accessKey: LTAI4G9zY9dtjrkX9m9KX5NX
     *   secretKey: mFgpfdNWmULnl3qEwMnm8CEZ9j7Zxf
     *   nameSrvAddr: http://MQ_INST_1093588360087422_BXsAfShQ.mq-internet-access.mq-internet.aliyuncs.com:80
     *   instanceId: MQ_INST_1093588360087422_BXsAfShQ
     *   sendMsgTimeoutMillis: 3000
     *   normalTopic: topic_yql_normal
     *   normalGroupId: GID_normal_default
     *   orderTopic: topic_yql_order
     *   orderGroupId: GID_order_default
     *   partOrderTopic: topic_yql_part_order
     *   partOrderGroupId: GID_part_order_default
     *   transTopic: topic_yql_trans
     *   transGroupId: GID_trans_default
     */
    public  static void sendMsg(String tag, List<String> messages){
//        /*init();*/
//        Properties properties = new MQProperties().getMQProperties();
//        // 您在消息队列RocketMQ版控制台创建的Group ID。
//        properties.put(PropertyKeyConst.GROUP_ID, MqConfig.getOrderGroupId());
//        OrderProducer orderProducer = ONSFactory.createOrderProducer(properties);
//        // 在发送消息前，必须调用start方法来启动Producer，只需调用一次即可。
//        orderProducer.start();
//        for (String s : messages) {
//            Message msg = new Message(MqConfig.getOrderTopic(), tag, s.getBytes());
//            // 设置代表消息的业务关键属性，请尽可能全局唯一。
//            // 以方便您在无法正常收到消息情况下，可通过消息队列RocketMQ版控制台查询消息并补发。
//            // 注意：不设置也不会影响消息正常收发。
//            msg.setKey(tag+"::"+s);
//            String shardingKey = "Global";
//            try {
//                SendResult sendResult = orderProducer.send(msg, shardingKey);
//                // 发送消息，只要不抛异常就是成功。
//                if (sendResult != null) {
//                    System.out.println(new Date() + " Send mq message success. Topic is:" + msg.getTopic() + " msgId is: " + sendResult.getMessageId());
//                }
//            }
//            catch (Exception e) {
//                // 消息发送失败，需要进行重试处理，可重新发送这条消息或持久化这条数据进行补偿处理。
//                System.out.println(new Date() + " Send mq message failed. Topic is:" + msg.getTopic());
//                e.printStackTrace();
//            }
//        }
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 3 ; i++){
            list.add("orderNo"+i);
        }
        sendMsg("order_no", list);
    }
}
